Mobile ghosting

ABSTRACT

In one embodiment, a first set of applications installed on a first device is identified. Device characteristics of a second device may be ascertained. An application store for the second device may be determined based, at least in part, on the device characteristics of the second device. A second set of applications corresponding to the first set of applications is selected, where the second set of applications is available from the application store and compatible with the device characteristics of the second device.

BACKGROUND

The disclosed embodiments relate generally to computer-implementedmethods and apparatus for replicating applications installed on onemobile device or equivalent applications onto another mobile device.

A mobile application, most commonly referred to as an application orapp, is a type of application software designed to run on a mobiledevice such as a smartphone or tablet computer. An app is typically asmall, individual software unit that provides limited and isolatedfunctionality such as a game, calculator, or mobile web browsing.

Due to the limited hardware resources of the early mobile devices, appshave traditionally provided limited functionality. However, thespecificity of apps is now part of their desirability because thisallows consumers to hand-pick the specific functions that their devicesare able to perform.

Today, there are numerous mobile applications available for installationon mobile devices. Typically, users may select mobile applicationsavailable from an application store and install the selected mobileapplications on their mobile devices. While some mobile applications canbe installed without submitting a payment, others are for purchase for anominal fee. Sometimes, applications may have further subscription feesthat are paid periodically to receive services after the applicationsare installed.

SUMMARY

In one embodiment, a first set of applications installed on a firstdevice is identified. Device characteristics of a second device may beascertained. An application store for the second device may bedetermined based, at least in part, on the device characteristics of thesecond device. A second set of applications corresponding to the firstset of applications is selected by a processor, where the second set ofapplications is available from the application store and compatible withthe device characteristics of the second device.

In another embodiment, a device comprising a processor and a memory isconfigured to perform one or more of the above described methodoperations. In another embodiment, a computer readable storage mediumhaving computer program instructions stored thereon are arranged toperform one or more of the above described method operations.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an example hierarchy of nodes in whichvarious embodiments may be implemented.

FIG. 2 is a process flow diagram illustrating an example method ofperforming mobile ghosting in accordance with various embodiments.

FIG. 3 is a process flow diagram illustrating an example method ofselecting a second set of applications corresponding to a first set ofapplications as shown at 208 of FIG. 2.

FIG. 4 is a schematic diagram illustrating an example embodiment of anetwork in which various embodiments may be implemented.

FIG. 5 is a schematic diagram illustrating an example client device inwhich various embodiments may be implemented.

FIG. 6 is a schematic diagram illustrating an example computer system inwhich various embodiments may be implemented.

DETAILED DESCRIPTION OF THE SPECIFIC EMBODIMENTS

Reference will now be made in detail to specific embodiments of thedisclosure. Examples of these embodiments are illustrated in theaccompanying drawings. While the disclosure will be described inconjunction with these specific embodiments, it will be understood thatit is not intended to limit the disclosure to these embodiments. On thecontrary, it is intended to cover alternatives, modifications, andequivalents as may be included within the spirit and scope of thedisclosure as defined by the appended claims. In the followingdescription, numerous specific details are set forth in order to providea thorough understanding of the disclosure. The disclosed embodimentsmay be practiced without some or all of these specific details. In otherinstances, well known process operations have not been described indetail in order not to unnecessarily obscure the disclosure. TheDetailed Description is not intended as an extensive or detaileddiscussion of known concepts, and as such, details that are knowngenerally to those of ordinary skill in the relevant art may have beenomitted or may be handled in summary fashion

Subject matter will now be described more fully hereinafter withreference to the accompanying drawings, which form a part hereof, andwhich show, by way of illustration, specific example embodiments.Subject matter may, however, be embodied in a variety of different formsand, therefore, covered or claimed subject matter is intended to beconstrued as not being limited to any example embodiments set forthherein; example embodiments are provided merely to be illustrative.Likewise, a reasonably broad scope for claimed or covered subject matteris intended. Among other things, for example, subject matter may beembodied as methods, devices, components, or systems. Accordingly,embodiments may, for example, take the form of hardware, software,firmware or any combination thereof (other than software per se). Thefollowing detailed description is, therefore, not intended to be takenin a limiting sense.

Throughout the specification and claims, terms may have nuanced meaningssuggested or implied in context beyond an explicitly stated meaning.Likewise, the phrase “in one embodiment” as used herein does notnecessarily refer to the same embodiment and the phrase “in anotherembodiment” as used herein does not necessarily refer to a differentembodiment. It is intended, for example, that claimed subject matterinclude combinations of example embodiments in whole or in part.

In general, terminology may be understood at least in part from usage incontext. For example, terms, such as “and”, “or”, or “and/or,” as usedherein may include a variety of meanings that may depend at least inpart upon the context in which such terms are used. Typically, “or” ifused to associate a list, such as A, B or C, is intended to mean A, B,and C, here used in the inclusive sense, as well as A, B or C, here usedin the exclusive sense. In addition, the term “one or more” as usedherein, depending at least in part upon context, may be used to describeany feature, structure, or characteristic in a singular sense or may beused to describe combinations of features, structures or characteristicsin a plural sense. Similarly, terms, such as “a,” “an,” or “the,” again,may be understood to convey a singular usage or to convey a pluralusage, depending at least in part upon context. In addition, the term“based on” may be understood as not necessarily intended to convey anexclusive set of factors and may, instead, allow for existence ofadditional factors not necessarily expressly described, again, dependingat least in part on context.

A user may install any number of applications on a mobile device. Later,when the user purchases a new mobile device either as a replacement oradditional mobile device, the user may wish to copy the previouslypurchased applications onto their new device. Where both devices are thesame type of device (e.g., smartphone), are purchased from the samemanufacturer, and have the same device operating system (and thereby thesame application store), the same set of mobile applications installedon their first device can typically be identified and installed on theirsecond device fairly easily. For example, where the user backed up thelist of applications installed on their first device, these sameapplications may be installed on their second device. Unfortunately,where the devices are of different types or have different operatingsystems, the same applications that are installed on one of the devicesoften cannot be installed on the other one of the devices easily.

Since applications may be installed onto a mobile device over asignificant period of time, the number of applications that areinstalled on a given mobile device may be significant. For a user tomanually find, select, and download each application onto their newmobile device would be a time-consuming and tedious process.

The disclosed embodiments support the “mobile ghosting” (e.g.,replicating) of applications installed on one mobile device orapplications that are “functionally equivalent” onto another mobiledevice. The devices need not be of the same type nor have the sameoperating system. Examples of systems and methods for implementing thedisclosed embodiments will be described in further detail below.

Example System

FIG. 1 is a diagram illustrating an example system in which variousembodiments may be implemented. As shown in FIG. 1, the system mayinclude one or more servers 102. For example, the servers 102 may beassociated with a web site that provides a variety of services to itsusers. More particularly, the server(s) 102 may include a web server,search server, and/or content server. In addition, the server(s) 102 mayprovide “mobile ghosting” services, as will be described in furtherdetail below.

In some embodiments, the server(s) 102 may provide services such astargeted content to users of the web site. A content server may storecontent for presentation to users. For example, a content server maystore web pages available on the Internet or data gathered via theInternet. As another example, a content server may be an “ad server”that stores online advertisements for presentation to users. “Adserving” refers to methods used to place online advertisements onwebsites, in applications, or other places where users are more likelyto see them, such as during an online session.

As shown in FIG. 1, a plurality of clients 106, 108, 110 may purchaseproducts, or access/receive various services via the web site. Moreparticularly, the services may include “mobile ghosting” services. Insome embodiments, the services may also include the transmission ofpersonalized content to the clients 106, 108, 110, email and/or othermessaging services.

“Mobile ghosting” services may be provided to the clients 106, 108, 110via applications implemented by the servers 102 and/or the clients 106,108, 110. More particularly, a “mobile ghosting” application may bedownloaded from application store(s) to the clients 106, 108, 110. Forexample, “mobile ghosting” services may be implemented by the servers102, a source mobile device from which a first set of applications areto be “replicated,” and/or a target mobile device for which a second setof “functionally equivalent” applications are to be identified,installed, and/or recommended for installation. In some embodiments, theclients 106, 108, 110 may access a web service, for example, on a webserver via network 104 using a graphical user interface to select andinstall applications identified via the mobile ghosting process.

The network 104 may take any suitable form, such as a wide area networkor Internet and/or one or more local area networks (LAN's). The network104 may include any suitable number and type of devices, e.g., routersand switches, for forwarding search or web object requests from eachclient to the search or web application and search or web results backto the requesting clients.

The disclosed embodiments may also be practiced in a wide variety ofnetwork environments (represented by network 104) including, forexample, TCP/IP-based networks, telecommunications networks, wirelessnetworks, etc. In addition, computer program instructions with whichvarious embodiments may be implemented may be stored in any type ofcomputer-readable media, and may be executed according to a variety ofcomputing models including a client/server model, a peer-to-peer model,on a stand-alone computing device, or according to a distributedcomputing model in which various of the functionalities described hereinmay be effected or employed at different locations.

A system supporting “mobile ghosting” may be implemented on any numberof servers although only a single server 102 is illustrated for clarity.Various embodiments disclosed herein may be implemented via the server102 and/or the clients 106, 108, 110. For example, various features maybe implemented via a web browser and/or application on the clients 106,108, 110. The disclosed embodiments may be implemented via softwareand/or hardware.

Users that are members of the web site, access content or other servicesof the web site, or receive services such as personalized content or“mobile ghosting” services from the web site may have user accounts thatare maintained by the system. In accordance with various embodiments,the server(s) 102 may have access to one or more databases into whichaccount information is retained for each of a plurality of useraccounts. The databases may be retained in one or more memories 118 thatare coupled to the server 102.

The account information pertaining to a user account may include a useridentifier. The user identifier may uniquely identify an account owner(e.g., user) within the system. For example, the user identifier mayinclude a sequence of alphanumeric characters such as a social securitynumber, a phone number, a family name (e.g., Chris Stoner), a username(e.g., Stoner408), or an email address. In accordance with variousembodiments, the user identifier is a username that corresponds to anemail address associated with the user account. In other embodiments,the user identifier may be determined using other mechanisms. Forexample, a user may be identified using biometric authentication methodssuch as a deoxyribonucleic acid (DNA), retina scan, finger printrecognition, or facial recognition. As another example, a user may beidentified using a possession factor device such as a universal serialbus (USB) security token, near field communication (NFC) device, orsmart card.

In addition, the account information may include one or more passwords.More particularly, the passwords may include a system-generated passwordand/or user-specified password.

The account information may also include device information for one ormore devices used in association with the account. For example, thedevice information may include a device identifier (e.g., InternetProtocol (IP) address or Media Access Control (MAC) address), devicetype (e.g., tablet, smartphone), device model (e.g., iphone, android),and/or operating system. The account information may also identify anapplication store from which applications may be downloaded andinstalled onto the corresponding one of the devices. In addition, theaccount information may also include a user identifier and passwordassociated with a user account for the corresponding application store.

In addition, the account information may include “mobile ghosting”preferences of an owner of the device. For example, the preferences mayindicate that applications that are identified via “mobile ghosting”services are to be automatically installed or are to be added to a queuein the application store for selection prior to installation. As anotherexample, the preferences may indicate that those applications that areidentified by “mobile ghosting” and are free to install are to beautomatically downloaded, while those applications that are not free toinstall (or those that have associated subscription fees) are to beadded to a queue in the application store for selection and installationby the user.

In some embodiments, the account information may further includepersonal information such as demographic information (e.g., birth date,age, occupation, and/or gender) and/or geographic information (e.g.,residence address, work address, zip code, and/or area code). Theaccount information may also include credit card information, enablingaccount owners to be charged for various products or services offered bythe web site.

As will be described in further detail below, the disclosed embodimentsmay “replicate” a first set of applications installed on a first deviceby identifying a second set of applications that correspond to the firstset of applications and are compatible with device characteristics of asecond device. More particularly, the second set of applications mayprovide the same functionality as the first set of applications orfunctionality that is equivalent to that of the first set ofapplications. Specifically, an application in the second set ofapplications may provide the same functionality as a correspondingapplication in the first set of applications, or functionality that isconsidered equivalent to that provided by the corresponding applicationin the first set of applications. The functionality of an applicationmay be determined based, at least in part, on a category associated withthe application, permissions associated with the application, and/orlanguage in which graphical user interfaces are provided by theapplication.

In some embodiments, mobile ghosting may be performed automatically. Forexample, mobile ghosting may be performed when a user turns on thesecond device, logs in to a user account associated with the web site,or logs in to an application store via the second device. In otherembodiments, mobile ghosting may be performed in response to a requestfor configuration of the second device by a user. For example, therequest for configuration may be submitted via a single action such as amouse click or selection by a user of a button or icon via the web site.

In accordance with various embodiments, a graphical user interface maybe presented to obtain configuration preferences from a user for use inconfiguration of the second device via “mobile ghosting” services. Theconfiguration preferences may indicate whether applications are to beautomatically downloaded to the second device. Similarly, theconfiguration preferences may indicate situations in which applicationsare to be automatically downloaded to the second device and/orsituations in which applications are to be added to a queue forselection by the user. For example, the configuration preferences mayindicate that applications that are free to download and have noassociated subscription fees are to be automatically downloaded, whileother applications that require payment are to be added to a queue forselection and installation by the user from an application store. Asanother example, the configuration preferences may indicate that where asingle application is identified as being “functionally equivalent” andcompatible with the device characteristics of the second device, theapplication is to be automatically downloaded. Therefore, a user mayindicate whether he or she wishes the “mobile ghosting” service toinstall applications on the second device without specifically providingconfirmation for each of the applications prior to such installation.

“Mobile ghosting” operations may be performed by the first device fromwhich applications are to be “replicated,” the second device for whichthe applications are to be “replicated,” and/or a remotely locatedserver. In some embodiments, the first device and second device maycommunicate regarding the applications to be replicated and/or thedevice characteristics of the second device. For example, the firstdevice may transmit a list of the applications to be replicated to thesecond device. As another example, the second device may transmit itsdevice characteristics to the first device. In other embodiments, aremotely located server may identify the applications to be replicatedand/or the device characteristics of the second device via informationstored in a cloud, communications with the first device, and/orcommunications with the second device.

In accordance with various embodiments, a trusted relationship betweenthe first device and the second device may be established. For example,the trusted relationship may be established via a user identifier andpassword associated with a user account, where the user identifier andpassword are submitted by the user via the first device and the seconddevice. Similarly, a server may access information pertaining to thefirst device and/or the second device using the user identifier andpassword. In some instances, the user may submit his or her useridentifier and password to the server via a login process. The useridentifier and password may be transmitted by the first device or thesecond device to the server automatically during mobile ghostingoperations.

FIG. 2 is a process flow diagram illustrating an example method ofperforming mobile ghosting of mobile applications in accordance withvarious embodiments. A first set of applications installed on a firstdevice from which applications are to be “replicated” may be identifiedat 202. The first device may have device characteristics including adevice type (e.g., smartphone), a device model (e.g., iphone orandroid), and/or an operating system. More particularly, the operatingsystem may include a name of the operating system, as well as a versionof the operating system.

In some embodiments, the first set of applications may be identified bya server. For example, the server may identify the first set ofapplications from a cloud that maintains lists of applications installedon various mobile devices. In other embodiments, a list of the first setof applications may be published by the first device or provided uponreceipt of a query for its installed applications (e.g., from a serveror another mobile device). For example, the list of applications may betransmitted as a message by the first device to the server or to thesecond device.

Device characteristics of a second device for which the first set ofapplications are to be “replicated” may be ascertained at 204. Forexample, the device characteristics may include a device type, anoperating system, and/or a device model. The device characteristics(e.g., device type, device model, and/or operating system) of the seconddevice need not be identical to the device characteristics of the firstdevice.

An application store for the second device may be ascertained at 206based, at least in part, on the device characteristics of the seconddevice. Different companies (e.g., device manufacturers and applicationvendors) may support different websites via which application stores maybe accessed. The application store from which applications may beinstalled onto the second device may be ascertained based, at least inpart, upon the device type (e.g., tablet, smartphone, etc.), devicemodel, and/or operating system of the second device. The applicationstore may be ascertained by a server or another device (e.g., the firstor second device).

The application store may list a plurality of applications that areavailable for installation on various devices. In addition, for each ofthe applications, the application store may identify correspondingapplication characteristics. More particularly, the applicationcharacteristics may indicate at least one application category in whichthe application is categorized, device characteristics of compatibledevices (e.g., compatible operating systems, device types, and/or devicemodels), language, permissions, number of downloads performed from theapplication store, application ranking among applications available fromthe application store, and/or number of stars assigned by users to theapplication.

A second set of applications corresponding to the first set ofapplications may be selected by a processor at 208, where the second setof applications is available from the application store and compatiblewith the device characteristics of the second device. The second set ofapplications that is selected may offer functionality that is the sameor functionally that is equivalent to the first set of applications.Stated another way, the second set of applications may includeapplications that offer the closest match to the functionally offered bythe first set of applications. Selection of the second set ofapplications may be performed automatically and/or in response to a userdetected action such as a request for configuration of the seconddevice. The second set of applications may be selected by a serverand/or another device (e.g., the first or second device).

In some instances, the second set of applications may include, for eachapplication in the first set of applications, at least one application.In other instances, it is possible that, for a particular application inthe first set of applications, a functionally equivalent applicationthat is compatible with the device characteristics of the second devicecannot be identified. Therefore, the second set of applications may notinclude a counterpart for each application in the first set ofapplications.

The second set of applications may be selected directly from theapplication store and/or a mapping table (or portion thereof). Forexample, a server may query application store(s) to generate andmaintain a mapping table, which maps applications that are consideredfunctionally equivalent (e.g., within the same application category) foruse by devices having various different device characteristics. Moreparticularly, the mapping table may identify sets of applications, whereeach set of applications includes applications that are considered to befunctionally equivalent applications in terms application functionality(e.g., application category, language, etc.). The mapping table mayindicate, for each application, corresponding applicationcharacteristics and the application store(s) from which the applicationcan be installed. In some embodiments, the server may provide themapping table or a portion thereof to devices, either automatically orupon request from such devices. For example, a portion of the mappingtable that identifies applications available from the application storethat are compatible with the second device may be transmittedperiodically to the second device. An example method of selecting thesecond set of applications will be described in further detail belowwith reference to FIG. 3.

FIG. 3 is a process flow diagram illustrating an example method ofselecting a second set of applications compatible with the second deviceas shown at 208, where the second set of applications corresponds to thefirst set of applications installed on a first device. As shown in FIG.3, an application in the first set of applications may be identified at302.

Application characteristics of the application may be identified at 304.More particularly, the application characteristics of the applicationmay include a category in which the application has been categorized.For example, the application category may be electronic mail,scheduling, instant messaging, or games.

In some embodiments, the application characteristics associated with theapplication in the first set of applications may include a set ofpermissions. For example, the permissions may permit or deny access tocontacts maintained in a mobile device. Further applicationcharacteristics may include a language in which graphical userinterfaces of the application are presented.

A set of applications available from the application store may beidentified at 306 based, at least in part, on the correspondingapplication characteristics (e.g., of the application in the first setand applications available from the application store) and the devicecharacteristics of the second device. For example, the applicationcharacteristics may include at least one application category in whichthe application is categorized, compatible operating systems, compatibledevice types, compatible device models, permissions, language(s), numberof downloads, application ranking, and/or number of stars.

Each application in the set of applications may be “functionallyequivalent” to the application in the first set of applications andcompatible with the device characteristics of the second device. Forexample, a functionally equivalent application may be categorized in thesame category, provide graphical user interfaces in the same language,and/or provide the same permissions as the application in the first setof applications.

The set of applications that is functionally equivalent to (e.g., mappedto) the application in the first set of applications may include zero ormore applications. More particularly, in some instances, a one-to-onemapping between the application in the first set of applications and a“functionally equivalent” application compatible with the devicecharacteristics of the second device may be identified. In otherinstances, the set of applications that are compatible with the devicecharacteristics of the second device and considered functionallyequivalent substitutes for the application installed on the first devicemay include two or more applications. In yet other instances, there maybe no applications that are considered to be compatible with the devicecharacteristics of the second device and also functionally equivalent tothe application installed on the first device.

Where two or more applications have been identified as possiblefunctional counterparts of an application installed on the first device,one of the applications may be automatically selected based, at least inpart, upon the corresponding application characteristics (of theapplication installed on the first device and/or applications availablefrom the application store) and the device characteristics of the seconddevice. For example, such automatic selection may be performed based, atleast in part, on application rankings, number of stars, and/or numberof downloads of the applications. In this manner, it is possible toautomatically select an application that is compatible with the seconddevice and is most likely to satisfy the user of the second device.

The process may continue at 308 for each remaining application in thefirst set of applications until the process ends at 310.

In accordance with various embodiments, the user of the second devicemay be prompted (e.g., by the ghosting service or application store) toinstall the second set of applications or a portion thereof. Moreparticularly, the second set of applications or a portion thereof may beadded to a queue for selection and downloading by the user. Thus, thesecond set of applications or a portion thereof may be presented via agraphical user interface for selection by a user. For example, two ormore applications that have been identified as possible functionalcounterparts of an application installed on the first device may bepresented for selection via a graphical user interface. Downloading ofone of the two or more applications onto the second device may beinitiated in response to receiving a selection of the one of the two ormore applications via the graphical user interface.

In some embodiments, at least a portion of the second set ofapplications may be downloaded to the second device from the applicationstore automatically without human intervention. For example, automaticdownloading may be performed when the second device is turned on, whenthe user logs in to an account via the web site, or when the user logsin to an account of an application store via the second device.Automatic downloading may be desirable in situations such as where asingle application that is compatible with the device characteristics ofthe second device and available from the application store is identifiedas being mapped to (e.g., functionally equivalent to) an application inthe first set of applications, the application in the second set ofapplications is free to download and/or where the application in thesecond set of applications has no associated subscription fees.

In accordance with various embodiments, notification(s) including devicecharacteristics of the first device, device characteristics of thesecond device, information pertaining to the first set of applicationsor portion thereof, and/or information pertaining to the second set ofapplications or a portion thereof may be transmitted to one or moreapplication providers. For example, the information may identifyapplications, as well as characteristics of each of the identifiedapplications. The providers may receive the notifications automaticallyor upon selection and downloading by a user of an identified applicationfrom an application store.

In some embodiments, application providers may ascertain from areferring uniform resource locator (URL) that a mobile ghosting serviceor an application store is providing the notifications. Using theinformation provided in the notifications, the application providers mayascertain whether their application(s) are identified in thenotifications and, if not, whether any of their applications should havebeen identified by the mobile ghosting service. The applicationproviders may contact the mobile ghosting service to update its mappingtable accordingly.

Network

A network may couple devices so that communications may be exchanged,such as between a server and a client device or other types of devices,including between wireless devices coupled via a wireless network, forexample. A network may also include mass storage, such as networkattached storage (NAS), a storage area network (SAN), or other forms ofcomputer or machine readable media, for example. A network may includethe Internet, one or more local area networks (LANs), one or more widearea networks (WANs), wire-line type connections, wireless typeconnections, or any combination thereof. Likewise, sub-networks, such asmay employ differing architectures or may be compliant or compatiblewith differing protocols, may interoperate within a larger network.Various types of devices may, for example, be made available to providean interoperable capability for differing architectures or protocols. Asone illustrative example, a router may provide a link between otherwiseseparate and independent LANs.

A communication link or channel may include, for example, analogtelephone lines, such as a twisted wire pair, a coaxial cable, full orfractional digital lines including T1, T2, T3, or T4 type lines,Integrated Services Digital Networks (ISDNs), Digital Subscriber Lines(DSLs), wireless links including satellite links, or other communicationlinks or channels, such as may be known to those skilled in the art.Furthermore, a computing device or other related electronic devices maybe remotely coupled to a network, such as via a telephone line or link,for example.

Content Distribution Network

A distributed system may include a content distribution network. A“content delivery network” or “content distribution network” (CDN)generally refers to a distributed content delivery system that comprisesa collection of computers or computing devices linked by a network ornetworks. A CDN may employ software, systems, protocols or techniques tofacilitate various services, such as storage, caching, communication ofcontent, or streaming media or applications. Services may also make useof ancillary technologies including, but not limited to, “cloudcomputing,” distributed storage, DNS request handling, provisioning,signal monitoring and reporting, content targeting, personalization, orbusiness intelligence. A CDN may also enable an entity to operate ormanage another's site infrastructure, in whole or in part.

Peer-to-Peer Network

A peer-to-peer (or P2P) network may employ computing power or bandwidthof network participants in contrast with a network that may employdedicated devices, such as dedicated servers, for example; however, somenetworks may employ both as well as other approaches. A P2P network maytypically be used for coupling nodes via an ad hoc arrangement orconfiguration. A peer-to-peer network may employ some nodes capable ofoperating as both a “client” and a “server.”

Wireless Network

A wireless network may couple client devices with a network. A wirelessnetwork may employ stand-alone ad-hoc networks, mesh networks, WirelessLAN (WLAN) networks, cellular networks, or the like.

A wireless network may further include a system of terminals, gateways,routers, or the like coupled by wireless radio links, or the like, whichmay move freely, randomly or organize themselves arbitrarily, such thatnetwork topology may change, at times even rapidly. A wireless networkmay further employ a plurality of network access technologies, includingLong Term Evolution (LTE), WLAN, Wireless Router (WR) mesh, or 2nd, 3rd,or 4th generation (2G, 3G, or 4G) cellular technology, or the like.Network access technologies may enable wide area coverage for devices,such as client devices with varying degrees of mobility, for example.

For example, a network may enable RF or wireless type communication viaone or more network access technologies, such as Global System forMobile communication (GSM), Universal Mobile Telecommunications System(UMTS), General Packet Radio Services (GPRS), Enhanced Data GSMEnvironment (EDGE), 3GPP Long Term Evolution (LTE), LTE Advanced,Wideband Code Division Multiple Access (WCDMA), Bluetooth, 802.11b/g/n,or the like. A wireless network may include virtually any type ofwireless communication mechanism by which signals may be communicatedbetween devices, such as a client device or a computing device, betweenor within a network, or the like.

Internet Protocol

Signal packets communicated via a network, such as a network ofparticipating digital communication networks, may be compatible with orcompliant with one or more protocols. Signaling formats or protocolsemployed may include, for example, TCP/IP, UDP, DECnet, NetBEUI, IPX,Appletalk, or the like. Versions of the Internet Protocol (IP) mayinclude IPv4 or IPv6.

The Internet refers to a decentralized global network of networks. TheInternet includes LANs, WANs, wireless networks, or long haul publicnetworks that, for example, allow signal packets to be communicatedbetween LANs. Signal packets may be communicated between nodes of anetwork, such as, for example, to one or more sites employing a localnetwork address. A signal packet may, for example, be communicated overthe Internet from a user site via an access node coupled to theInternet. Likewise, a signal packet may be forwarded via network nodesto a target site coupled to the network via a network access node, forexample. A signal packet communicated via the Internet may, for example,be routed via a path of gateways, servers, etc. that may route thesignal packet in accordance with a target address and availability of anetwork path to the target address.

Network Architecture

The disclosed embodiments may be implemented in any of a wide variety ofcomputing contexts. FIG. 4 is a schematic diagram illustrating anexample embodiment of a network. Other embodiments that may vary, forexample, in terms of arrangement or in terms of type of components, arealso intended to be included within claimed subject matter.Implementations are contemplated in which users interact with a diversenetwork environment. As shown, FIG. 4, for example, includes a varietyof networks, such as a LAN/WAN 705 and wireless network 700, a varietyof devices, such as client devices 701-704, and a variety of serverssuch as content server(s) 707 and search server 706. The servers mayalso include an ad server (not shown). As shown in this example, theclient devices 701-704 may include one or more mobile devices 702, 703,704. Client device(s) 701-704 may be implemented, for example, via anytype of computer (e.g., desktop, laptop, tablet, etc.), media computingplatforms (e.g., cable and satellite set top boxes), handheld computingdevices (e.g., PDAs), cell phones, or any other type of computing orcommunication platform.

The disclosed embodiments may be implemented in some centralized manner.This is represented in FIG. 5 by server(s) 707, which may correspond tomultiple distributed devices and data store(s). The server(s) 707 and/orcorresponding data store(s) may store user account data, userinformation, and/or content.

Server

A computing device may be capable of sending or receiving signals, suchas via a wired or wireless network, or may be capable of processing orstoring signals, such as in memory as physical memory states, and may,therefore, operate as a server. Thus, devices capable of operating as aserver may include, as examples, dedicated rack-mounted servers, desktopcomputers, laptop computers, set top boxes, integrated devices combiningvarious features, such as two or more features of the foregoing devices,or the like.

Servers may vary widely in configuration or capabilities, but generallya server may include one or more central processing units and memory. Aserver may also include one or more mass storage devices, one or morepower supplies, one or more wired or wireless network interfaces, one ormore input/output interfaces, or one or more operating systems, such asWindows Server, Mac OS X, Unix, Linux, FreeBSD, or the like.

Content Server

A content server may comprise a device that includes a configuration toprovide content via a network to another device. A content server may,for example, host a site, such as a social networking site, examples ofwhich may include, without limitation, Flicker, Twitter, Facebook,LinkedIn, or a personal user site (such as a blog, vlog, online datingsite, etc.). A content server may also host a variety of other sites,including, but not limited to business sites, educational sites,dictionary sites, encyclopedia sites, wikis, financial sites, governmentsites, etc.

A content server may further provide a variety of services that include,but are not limited to, web services, third-party services, audioservices, video services, email services, instant messaging (IM)services, SMS services, MMS services, FTP services, voice over IP (VOIP)services, calendaring services, photo services, or the like. Examples ofcontent may include text, images, audio, video, or the like, which maybe processed in the form of physical signals, such as electricalsignals, for example, or may be stored in memory, as physical states,for example.

Examples of devices that may operate as a content server include desktopcomputers, multiprocessor systems, microprocessor-type or programmableconsumer electronics, etc.

Client Device

FIG. 5 is a schematic diagram illustrating an example embodiment of aclient device in which various embodiments may be implemented. A clientdevice may include a computing device capable of sending or receivingsignals, such as via a wired or a wireless network. A client device may,for example, include a desktop computer or a portable device, such as acellular telephone, a smart phone, a display pager, a radio frequency(RF) device, an infrared (IR) device, a Personal Digital Assistant(PDA), a handheld computer, a tablet computer, a laptop computer, a settop box, a wearable computer, an integrated device combining variousfeatures, such as features of the forgoing devices, or the like. Aportable device may also be referred to as a mobile device or handhelddevice.

As shown in this example, a client device 800 may include one or morecentral processing units (CPUs) 822, which may be coupled via connection824 to a power supply 826 and a memory 830. The memory 830 may includerandom access memory (RAM) 832 and read only memory (ROM) 834. The ROM834 may include a basic input/output system (BIOS) 840.

The RAM 832 may include an operating system 841. More particularly, aclient device may include or may execute a variety of operating systems,including a personal computer operating system, such as a Windows, iOSor Linux, or a mobile operating system, such as iOS, Android, or WindowsMobile, or the like. The client device 800 may also include or mayexecute a variety of possible applications 842 (shown in RAM 832), suchas a client software application such as messenger 843, enablingcommunication with other devices, such as communicating one or moremessages, such as via email, short message service (SMS), or multimediamessage service (MMS), including via a network, such as a socialnetwork, including, for example, Facebook, LinkedIn, Twitter, Flickr, orGoogle, to provide only a few possible examples. The client device 800may also include or execute an application to communicate content, suchas, for example, textual content, multimedia content, or the like, whichmay be stored in data storage 844. A client device may also include orexecute an application such as a browser 845 to perform a variety ofpossible tasks, such as browsing, searching, playing various forms ofcontent, including locally stored or streamed video, or games (such asfantasy sports leagues).

The client device 800 may send or receive signals via one or moreinterface(s). As shown in this example, the client device 800 mayinclude one or more network interfaces 850. The client device 800 mayinclude an audio interface 852. In addition, the client device 800 mayinclude a display 854 and an illuminator 858. The client device 800 mayfurther include an Input/Output interface 860, as well as a HapticInterface 862 supporting tactile feedback technology.

The client device 800 may vary in terms of capabilities or features.Claimed subject matter is intended to cover a wide range of potentialvariations. For example, a cell phone may include a keypad such 856 suchas a numeric keypad or a display of limited functionality, such as amonochrome liquid crystal display (LCD) for displaying text. Incontrast, however, as another example, a web-enabled client device mayinclude one or more physical or virtual keyboards, mass storage, one ormore accelerometers, one or more gyroscopes, global positioning system(GPS) 864 or other location identifying type capability, or a displaywith a high degree of functionality, such as a touch-sensitive color 2Dor 3D display, for example. The foregoing is provided to illustrate thatclaimed subject matter is intended to include a wide range of possiblefeatures or capabilities.

According to various embodiments, input may be obtained using a widevariety of techniques. For example, input for downloading or launchingan application may be obtained via a graphical user interface from auser's interaction with a local application such as a mobile applicationon a mobile device, web site or web-based application or service and maybe accomplished using any of a variety of well-known mechanisms forobtaining information from a user. However, it should be understood thatsuch methods of obtaining input from a user are merely examples and thatinput may be obtained in many other ways.

In some embodiments, an identity of the user (e.g., owner) of the clientdevice may be statically configured. Thus, the device may be keyed to anowner or multiple owners. In other embodiments, the device mayautomatically determine the identity of the user of the device. Forinstance, a user of the device may be identified by deoxyribonucleicacid (DNA), retina scan, and/or finger print.

FIG. 6 illustrates a typical computer system that, when appropriatelyconfigured or designed, can serve as a system via which variousembodiments may be implemented. The computer system 1200 includes anynumber of CPUs 1202 that are coupled to storage devices includingprimary storage 1206 (typically a RAM), primary storage 1204 (typicallya ROM). CPU 1202 may be of various types including microcontrollers andmicroprocessors such as programmable devices (e.g., CPLDs and FPGAs) andunprogrammable devices such as gate array ASICs or general purposemicroprocessors. As is well known in the art, primary storage 1204 actsto transfer data and instructions uni-directionally to the CPU andprimary storage 1206 is used typically to transfer data and instructionsin a bi-directional manner. Both of these primary storage devices mayinclude any suitable computer-readable media such as those describedabove. A mass storage device 1208 is also coupled bi-directionally toCPU 1202 and provides additional data storage capacity and may includeany of the computer-readable media described above. Mass storage device1208 may be used to store programs, data and the like and is typically asecondary storage medium such as a hard disk. It will be appreciatedthat the information retained within the mass storage device 1208, may,in appropriate cases, be incorporated in standard fashion as part ofprimary storage 1206 as virtual memory. A specific mass storage devicesuch as a CD-ROM 1214 may also pass data uni-directionally to the CPU.

CPU 1202 may also be coupled to an interface 1210 that connects to oneor more input/output devices such as such as video monitors, trackballs, mice, keyboards, microphones, touch-sensitive displays,transducer card readers, magnetic or paper tape readers, tablets,styluses, voice or handwriting recognizers, or other well-known inputdevices such as, of course, other computers. Finally, CPU 1202optionally may be coupled to an external device such as a database or acomputer or telecommunications network using an external connection asshown generally at 1212. With such a connection, it is contemplated thatthe CPU might receive information from the network, or might outputinformation to the network in the course of performing the method stepsdescribed herein.

Regardless of the system's configuration, it may employ one or morememories or memory modules configured to store data, programinstructions for the general-purpose processing operations and/or theinventive techniques described herein. The program instructions maycontrol the operation of an operating system and/or one or moreapplications, for example. The memory or memories may also be configuredto store instructions for performing the disclosed methods, graphicaluser interfaces to be displayed in association with the disclosedmethods, etc.

Because such information and program instructions may be employed toimplement the systems/methods described herein, the disclosedembodiments relate to machine readable media that include programinstructions, state information, etc. for performing various operationsdescribed herein. Examples of machine-readable media include, but arenot limited to, magnetic media such as hard disks, floppy disks, andmagnetic tape; optical media such as CD-ROM disks; magneto-optical mediasuch as optical disks; and hardware devices that are speciallyconfigured to store and perform program instructions, such as ROM andRAM. Examples of program instructions include both machine code, such asproduced by a compiler, and files containing higher level code that maybe executed by the computer using an interpreter.

Computer program instructions with which various embodiments areimplemented may be stored in any type of computer-readable media, andmay be executed according to a variety of computing models including aclient/server model, a peer-to-peer model, on a stand-alone computingdevice, or according to a distributed computing model in which variousof the functionalities described herein may be effected or employed atdifferent locations.

The disclosed techniques may be implemented in any suitable combinationof software and/or hardware system, such as a web-based server ordesktop computer system. Moreover, a system implementing variousembodiments may include a portable device, such as a laptop or cellphone. An apparatus and/or web browser may be specially constructed forthe required purposes, or it may be a general-purpose computerselectively activated or reconfigured by a computer program and/or datastructure stored in the computer. The processes presented herein are notinherently related to any particular computer or other apparatus. Inparticular, various general-purpose machines may be used with programswritten in accordance with the teachings herein, or it may be moreconvenient to construct a more specialized apparatus to perform thedisclosed method steps.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, it will be apparent thatcertain changes and modifications may be practiced within the scope ofthe appended claims. Therefore, the present embodiments are to beconsidered as illustrative and not restrictive and the embodiments arenot to be limited to the details given herein, but may be modifiedwithin the scope and equivalents of the appended claims.

What is claimed is:
 1. A method, comprising: identifying a first set ofapplications installed on a first device; ascertaining devicecharacteristics of a second device; determining an application store forthe second device based, at least in part, on the device characteristicsof the second device; and selecting, by a processor, a second set ofapplications corresponding to the first set of applications, the secondset of applications being available from the application store and beingcompatible with the device characteristics of the second device; anddownloading the second set of applications according to configurationpreferences, the configuration preferences indicating a first set ofpreferences for applications that are free to download from theapplication store and a second set of preferences for applications thatare not free to download from the application store.
 2. The method asrecited in claim 1, further comprising identifying an applicationcategory of an application in the first set of applications, whereinselecting the second set of applications comprises: identifying at leastone application available from the application store that is categorizedin the same application category and compatible with the devicecharacteristics of the second device based, at least in part, on thecorresponding application characteristics and the device characteristicsof the second device, wherein the application characteristics includeone or more of: at least one application category in which theapplication is categorized, number of downloads, application ranking, ornumber of stars.
 3. The method as recited in claim 2, wherein the atleast one application includes two or more applications, whereinselecting the second set of applications further comprises:automatically selecting one of the two or more applications based, atleast in part, upon the corresponding application characteristics andthe device characteristics of the second device.
 4. The method asrecited in claim 1, further comprising: present at least a portion ofthe second set of applications for selection via a graphical userinterface; and initiate downloading of an application in the second setof applications in response to receiving a selection of the applicationvia the graphical user interface.
 5. The method as recited in claim 1,further comprising: automatically initiating downloading of at least aportion of the second set of applications from the application store. 6.The method as recited in claim 1, further comprising: adding at least aportion of the second set of applications to a queue of the applicationstore.
 7. The method as recited in claim 1, wherein the identifying,ascertaining, and selecting are performed by at least one of: the firstdevice, the second device, or a server.
 8. The method as recited inclaim 1, wherein the device characteristics of the second device are notidentical to the device characteristics of the first device.
 9. Themethod as recited in claim 1, further comprising: instructions fordetecting at least one of: a user has turned on the second device,logged in to a user account, or logged in to an application store viathe second device.
 10. An apparatus, comprising: a processor; and amemory, at least one of the processor or the memory being configured to:identify a first set of applications installed on a first device;ascertain device characteristics of a second device; determine anapplication store for the second device based, at least in part, on thedevice characteristics of the second device; select, by a processor, asecond set of applications corresponding to the first set ofapplications, the second set of applications being available from theapplication store and being compatible with the device characteristicsof the second device; automatically downloading a first subset of thesecond set of applications, the first subset of the second set ofapplications being free to download from the application store; andadding a second subset of the second set of applications to a queue ofthe application store, the second subset of the second set ofapplications not being free to download from the application store. 11.The apparatus as recited in claim 10, wherein the apparatus comprises amobile device or a server.
 12. The apparatus as recited in claim 10, atleast one of the processor or the memory being further configured toidentify an application category of an application in the first set ofapplications, wherein selecting the second set of applicationscomprises: identifying at least one application available from theapplication store that is categorized in the same application categoryand compatible with the device characteristics of the second devicebased, at least in part, on the corresponding applicationcharacteristics and the device characteristics of the second device,wherein the application characteristics include one or more of: at leastone application category in which the application is categorized,compatible operating systems, compatible device types, compatible devicemodels, number of downloads, application ranking, or number of stars.13. The apparatus as recited in claim 12, wherein the at least oneapplication includes two or more applications, wherein selecting thesecond set of applications further comprises: automatically selectingone of the two or more applications based, at least in part, upon thecorresponding application characteristics and the device characteristicsof the second device.
 14. The apparatus as recited in claim 10, at leastone of the processor or the memory being further configured to: presentat least a portion of the second set of applications for selection via agraphical user interface; and initiate downloading of an application inthe second set of applications in response to receiving a selection ofthe application via the graphical user interface.
 15. The apparatus asrecited in claim 10, at least one of the processor or the memory beingfurther configured to: automatically initiate downloading of at least aportion of the second set of applications from the application store.16. The apparatus as recited in claim 10, at least one of the processoror the memory being further configured to: add at least a portion of thesecond set of applications to a queue of the application store.
 17. Theapparatus as recited in claim 10, wherein the device characteristics ofthe second device are not identical to the device characteristics of thefirst device.
 18. A non-transitory computer-readable storage mediumstoring thereon computer-readable instructions, comprising: instructionsfor identifying a first set of applications installed on a first device;instructions for ascertaining device characteristics of a second deviceinstructions for determining an application store for the second devicebased, at least in part, on the device characteristics of the seconddevice; instructions for selecting, by a processor, a second set ofapplications corresponding to the first set of applications, the secondset of applications being available from the application store and beingcompatible with the device characteristics of the second device; andpresenting at least a portion of the second set of applications forselection via a graphical user interface or adding at least a portion ofthe second set of applications to a queue of the application store. 19.The non-transitory computer-readable storage medium as recited in claim18, further comprising: instructions for identifying an applicationcategory of an application in the first set of applications, whereinselecting the second set of applications comprises: instructions foridentifying at least one application available from the applicationstore that is categorized in the same application category andcompatible with the device characteristics of the second device based,at least in part, on the corresponding application characteristics andthe device characteristics of the second device, wherein the applicationcharacteristics include one or more of: at least one applicationcategory in which the application is categorized, compatible operatingsystems, compatible device types, compatible device models, number ofdownloads, application ranking, or number of stars.
 20. Thenon-transitory computer-readable storage medium as recited in claim 18,wherein the device characteristics of the second device are differentfrom the device characteristics of the first device.